xen/arm: Automatically find a PPI for the DOM0 event channel interrupt
authorJulien Grall <julien.grall@linaro.org>
Thu, 19 Feb 2015 18:12:04 +0000 (18:12 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 25 Feb 2015 13:49:31 +0000 (13:49 +0000)
commita3214b4b9979320249b46d12d857a5a66cbcb49e
treef01bc3608d3ddd55fcfd8b74868e4585a1e90f88
parent1c4159922adf931fa3362963910af8862b4accec
xen/arm: Automatically find a PPI for the DOM0 event channel interrupt

Use the new vgic interface to know which virtual PPI is free and use it
for the event channel code.

At the DOM0 creation time, Xen doesn't know which vIRQ will be free.
All the vIRQ will be reserved when we parse the device tree. So we can
allocate the vIRQ just after the device tree has been parsed.

It's safe to defer the allocation because no vIRQ can be injected as
long as the vCPU is not online.

As the device tree node "hypervisor" containing the description of the
event channel interrupt is created earlier, add a placeholder which will
be fix up once Xen has allocated the PPI.

Also correct the check in arch_domain_create to use is_hardware_domain.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
xen/arch/arm/domain.c
xen/arch/arm/domain_build.c
xen/arch/arm/platform.c
xen/arch/arm/platforms/xgene-storm.c
xen/include/asm-arm/platform.h